package demo01;

import java.util.ArrayList;
import java.util.Collection;

/*
 *  java.util.Collection接口
 *      所有单列集合的最顶层接口，里面定义了所有单列集合共性的方法
 *      任意的单列集合都可以使用Collection接口中的方法
 * 
 *  共性的方法：
 *      public boolean add(E e)：把给定的对象添加到当前集合中
 *      public boolean remove(E e)：把给定的对象在当前集合中删除
 *      public boolean contains(E e)：判断当前集合中是否包含给定的对象
 *      public boolean isEmpty()：判断当前集合是否为空
 *      public int size()：返回集合中元素的个数
 *      public Object[] toArray()：把集合中的元素，存储到数组中
 *      public void clear()：清空集合中所有的元素
 */
public class Demo01Collection {
    public static void main(String[] args) {
        // 创建集合对象
        Collection<String> collection = new ArrayList<>(); // 多态创建
        System.out.println(collection); // []，重写了toString方法

        /*
         *  public boolean add(E e)：把给定的对象添加到当前集合中
         *  返回值是个boolean值，一般都返回true，所以可以不用接收
         */
        boolean b1 = collection.add("土司鸡");
        System.out.println("b1：" + b1); // true
        System.out.println(collection); // [土司鸡]
        collection.add("老虎");
        collection.add("粹花");
        collection.add("提莫");
        System.out.println(collection); // [土司鸡, 老虎, 粹花, 提莫]

        /*
         *  public boolean remove(E e)：把给定的对象在当前集合中删除
         *  返回值是个boolean值
         *  集合中存在该元素，则删除元素并返回true
         *  集合中不存在该元素，则删除失败并返回false
         */
        boolean b2 = collection.remove("提莫");
        System.out.println("b2：" + b2); // true
        boolean b3 = collection.remove("pocky");
        System.out.println("b3：" + b3); // false
        System.out.println(collection); // [土司鸡, 老虎, 粹花]

        /*
         *  public boolean contains(E e)：判断当前集合中是否包含给定的对象
         *  包含则返回true
         *  不包含返回false
         */
        boolean b4 = collection.contains("粹花");
        System.out.println("b4：" + b4); // true
        boolean b5 = collection.contains("提莫");
        System.out.println("b5：" + b5); // false

        /*
         *  public boolean isEmpty()：判断当前集合是否为空
         *  集合为空返回true
         *  集合不为空返回false
         */
        boolean b6 = collection.isEmpty();
        System.out.println("b6：" + b6); // false

        /*
         *  public int size()：返回集合中元素的个数
         */
        int size = collection.size();
        System.out.println("size：" + size); // 3

        /*
         *  public Object[] toArray()：把集合中的元素，存储到数组中
         *  转换为数组后，就可以使用循环遍历了
         */
        Object[] arr = collection.toArray(); // 返回值为Object类型数组
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]); // 土司鸡老虎粹花
        }

        /*
         *  public void clear()：清空集合中所有的元素
         *  不会删除集合，集合还会存在，只是元素被清空了
         */
        collection.clear();
        System.out.println(collection); // []
        System.out.println(collection.isEmpty()); // true，集合为空
    }
}
